package gestion.horarios.model.jpa.entities;

import java.io.Serializable;
import javax.persistence.*;

import java.util.List;
import gestion.horarios.model.jpa.views.ViewSesionLectiva;
import java.util.Collection;


/**
 * The persistent class for the espaciolectivo database table.
 * 
 */
@Entity
@Table(name="espaciolectivo")
public class EspacioLectivo implements Serializable {
	private static final long serialVersionUID = 1L;
	private int espacioLectivoId;
	private int capacidad;
	private String estado;
	private String nombre;
	private List<DisponibilidadEspacioLectivo> disponibilidadespaciolectivos;
	private List<DisponibilidadEspacioLectivoEscenario> disponibilidadespaciolectivoescenarios;
	private TipoEspacioLectivo tipoespaciolectivo;
	private List<SesionLectiva> sesionlectivas;
	private Sede sede;
	private Collection<ViewSesionLectiva> viewSesionLectiva;

    public EspacioLectivo() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	public int getEspacioLectivoId() {
		return this.espacioLectivoId;
	}

	public void setEspacioLectivoId(int espacioLectivoId) {
		this.espacioLectivoId = espacioLectivoId;
	}


	public int getCapacidad() {
		return this.capacidad;
	}

	public void setCapacidad(int capacidad) {
		this.capacidad = capacidad;
	}


	@Column(length=45)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}


	@Column(length=45)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	//bi-directional many-to-one association to DisponibilidadEspacioLectivo
	@OneToMany(mappedBy="espaciolectivo")
	public List<DisponibilidadEspacioLectivo> getDisponibilidadespaciolectivos() {
		return this.disponibilidadespaciolectivos;
	}

	public void setDisponibilidadespaciolectivos(List<DisponibilidadEspacioLectivo> disponibilidadespaciolectivos) {
		this.disponibilidadespaciolectivos = disponibilidadespaciolectivos;
	}
	

	//bi-directional many-to-one association to DisponibilidadEspacioLectivoEscenario
	@OneToMany(mappedBy="espaciolectivo")
	public List<DisponibilidadEspacioLectivoEscenario> getDisponibilidadespaciolectivoescenarios() {
		return this.disponibilidadespaciolectivoescenarios;
	}

	public void setDisponibilidadespaciolectivoescenarios(List<DisponibilidadEspacioLectivoEscenario> disponibilidadespaciolectivoescenarios) {
		this.disponibilidadespaciolectivoescenarios = disponibilidadespaciolectivoescenarios;
	}
	

	//bi-directional many-to-one association to TipoEspacioLectivo
    @ManyToOne
	@JoinColumn(name="TipoEspacioLectivoId", nullable=false)
	public TipoEspacioLectivo getTipoespaciolectivo() {
		return this.tipoespaciolectivo;
	}

	public void setTipoespaciolectivo(TipoEspacioLectivo tipoespaciolectivo) {
		this.tipoespaciolectivo = tipoespaciolectivo;
	}
	

	//bi-directional many-to-one association to EspacioLectivo
	@OneToMany(mappedBy="espaciolectivo")
	public List<SesionLectiva> getSesionlectivas() {
		return this.sesionlectivas;
	}

	public void setSesionlectivas(List<SesionLectiva> sesionlectivas) {
		this.sesionlectivas = sesionlectivas;
	}
	
	//bi-directional many-to-one association to Sede
    @ManyToOne
	@JoinColumn(name="SedeId", nullable=false)
	public Sede getSede() {
		return this.sede;
	}

	public void setSede(Sede sede) {
		this.sede = sede;
	}


	@OneToMany
	@JoinColumn(name = "espaciolectivo_espacioLectivoId", referencedColumnName = "espacioLectivoId")
	public Collection<ViewSesionLectiva> getViewSesionLectiva() {
	    return viewSesionLectiva;
	}


	public void setViewSesionLectiva(Collection<ViewSesionLectiva> param) {
	    this.viewSesionLectiva = param;
	}
	
}